In a virtual memory system one or more processors may share a common memory in combination with one or more controllers or devices. A processor may request a controller to directly access the common memory without the continuous intervention of the processor by sending the controller a command to transfer the data and sending the controller the address of the storage location of the data. This remote access of the common memory by the device is called direct memory access (DMA). In the prior art it is common for the processor to request the virtual memory manager to pin or prevent alteration of the memory being accessed by the device to prevent any reallocation of that data by the processor or other processors prior to the completion of the DMA process by the device. This is accomplished by providing a description of the memory being accessed in the common memory in a process called pinning. If the data is pinned, then the data will not be reallocated by the virtual memory manager until the data is unpinned by another call to the virtual memory manager. However, such calls to the virtual memory manager are very time consuming because they require multiple context switches and the execution of hundreds of instructions and may slow down the processing of data throughout the data processing system. In addition, the pinning of memory does not allow for any sort of prioritization between the DMA being performed by the device and the need of the virtual memory manager to reallocate data in the common memory.